1. Technical Field
The present invention generally relates to multi-processor data processing systems and in particular to operations on data processing systems configured with multiple processing units. Still more particularly, the present invention relates to a method and system for completing parallel processing of distributed work across multiple processing units of a multi-core data processing system.
2. Description of the Related Art
Multi-core data processing systems are utilized to enable parallel processing of data that can be divided into portions for completion. In an attempt to divide and balance work loads on a single node or compute device, programs are written to portion or subdivide the single node or compute device. As shown in prior art FIG. 1, a single node or compute device is subdivided such that each portion includes one or more processing elements or processor cores in accordance with a first subdivision process or schema. As illustrated, node 5 can include cores 10-47 which are subdivided into subdivisions or subdevices 50-52, where subdevice 50 includes cores 10-13, 20-23, 30-33, and 40-43, subdevice 51 includes cores 14-17, 24-27, and 34-37, and subdevice 52 include cores 44-47. For example, subdevice 50 processes sound output, subdevice 51 processes video output, and subdevice 52 processes positions (e.g., processing positions of one or more objects). If more processing capabilities are needed in one processing area, node 5 must be re-portioned or re-subdivided to re-balance the workload. This can be accomplished by a program maintaining and re-portioning or re-subdividing node 5 into subdevices. As shown in prior art FIG. 2, node 5 is re-portioned or re-subdivided to re-balance the workload. As illustrated, subdevice 53 includes cores 10-14, 20-24, 30-34, and 40-44, subdevice 52 includes cores 15-17, 25-27, and 35-37, and subdevice 52 include cores 45-47. In one example, sound processing needs more processing capabilities, so cores are taken from other processes and re-distributed to sound processing. For instance, subdevice 53 processes sound output, subdevice 54 processes video output, and subdevice 55 processes positions. In the past, dynamic modification of managing subdevices has been difficult to implement.